{
 "cells": [
  {
   "cell_type": "code",
   "id": "initial_id",
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2025-11-07T02:04:57.389805Z",
     "start_time": "2025-11-07T02:04:57.385629Z"
    }
   },
   "source": "from sklearn.linear_model import LinearRegression",
   "outputs": [],
   "execution_count": 41
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-11-07T02:04:57.444129Z",
     "start_time": "2025-11-07T02:04:57.435437Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 1. 定义数据\n",
    "# 自变量，每周学习时长\n",
    "X = [[5], [8], [10], [12], [15], [3], [7], [9], [14], [6]]\n",
    "# 因变量，数学考试成绩\n",
    "y = [50, 65, 70, 75, 85, 50, 60, 72, 80, 58]"
   ],
   "id": "481aceac1304af8c",
   "outputs": [],
   "execution_count": 42
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-11-07T02:04:57.460557Z",
     "start_time": "2025-11-07T02:04:57.455662Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 2. 加载模型：线性回归模型\n",
    "model = LinearRegression()"
   ],
   "id": "6f7ac77c33799b45",
   "outputs": [],
   "execution_count": 43
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-11-07T02:04:57.496049Z",
     "start_time": "2025-11-07T02:04:57.488174Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 3.模型训练\n",
    "model.fit(X, y)\n",
    "print(model.coef_)\n",
    "print(model.intercept_)"
   ],
   "id": "f4e5c717d2d27842",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[3.01314828]\n",
      "39.682980277574856\n"
     ]
    }
   ],
   "execution_count": 44
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-11-07T02:04:57.549014Z",
     "start_time": "2025-11-07T02:04:57.542436Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 4. 模型预测\n",
    "X_new = [[10]]\n",
    "y_pred = model.predict(X_new)\n",
    "print(y_pred)"
   ],
   "id": "d4d33a7ba2c8e079",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[69.81446311]\n"
     ]
    }
   ],
   "execution_count": 45
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-11-07T02:04:57.603748Z",
     "start_time": "2025-11-07T02:04:57.599263Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 5.画图\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import matplotlib\n",
    "\n",
    "# 设置中文字体和解决负号显示问题\n",
    "matplotlib.rcParams['font.sans-serif'] = ['SimHei']\n",
    "matplotlib.rcParams['axes.unicode_minus'] = False"
   ],
   "id": "6d82588deb12dd8c",
   "outputs": [],
   "execution_count": 46
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-11-07T02:04:57.637060Z",
     "start_time": "2025-11-07T02:04:57.632362Z"
    }
   },
   "cell_type": "code",
   "source": [
    "x_line = np.arange(0, 15, 0.1).reshape(-1, 1)\n",
    "y_line = model.predict(x_line)"
   ],
   "id": "8d7e73317a7a5840",
   "outputs": [],
   "execution_count": 47
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-11-07T02:04:57.796726Z",
     "start_time": "2025-11-07T02:04:57.659661Z"
    }
   },
   "cell_type": "code",
   "source": [
    "plt.scatter(X, y)\n",
    "plt.scatter(X_new, y_pred, c='y')\n",
    "plt.plot(x_line, y_line, c='r')\n",
    "plt.xlabel('学习时长')\n",
    "plt.ylabel('考试成绩')\n",
    "plt.title('线性回归模型')\n",
    "plt.show()"
   ],
   "id": "ca9f3fcf8b213fb8",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAHECAYAAAAefaGmAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAATzlJREFUeJzt3QmczfX+x/G3fez7vhSSkrJlSSmKUpa0J8p6LS3aUO6tlBblFkmWRIQodSuklL1kyxpJEYoQWcY6g5nzf3y+v878xxjMMDNnez0fj3NnfuecOfM7R/ec93y/n+/nm8nn8/kEAAAQAjIH+gQAAABSiuACAABCBsEFAACEDIILAAAIGQQXAAAQMgguAAAgZBBcAABAyCC4AACAkEFwASJQXFxcoE8BAM4JwQWIQB06dFDbtm0VHx+fcN2GDRuUJ08ejR49WsePH9dPP/2U7M/u2LFDH374oU6cOJHs7T/++KN27typjLBlyxY1bdpU69evT/XPzpgxQw888MAp148cOVJLlixx33/yySf69ttvT7mPPXe7ftGiRVq8ePFJl++//14///zzSfdfu3at6tWrpyNHjqT6PAGcLGuSYwBhbteuXZo8ebJGjBihzJn//2+XYsWK6fDhwypatKi++uortW7d2n0IV69e/ZRgYre1bNlSWbN6byH2c7lz53bf33rrrXrkkUf0xBNPJPv7ixcv7s4hpQoVKqQ9e/Yke5sFrK+//lpHjx7VRx995EaSsmfPnux9W7VqlXC+5s8//9Ts2bPd9/Zz9lg5cuRwoczuV7duXX3wwQe64oor1KBBA/ccLdiZmJgYPfXUUy7ALF++XNdff727fs6cOapWrZruvvtuHTp0SHXq1HFhJTY21oWhxL8fwLnh/0VAhHnttdd07bXXqn379i4QFC5c2F2fP39+9zVnzpxq0qSJHnzwQf3xxx+nBBd/MEgcEOrXr+9GcR577DH381FRUaf9/RYO7Bxuv/32s57rlClTNGDAgJOuu+SSS9S8eXO9/vrrCedggeCtt95SdHS0e/xMmTIl3N+eo43MWHhIeh7ZsmVz369evdqFE3scCxo2cmLBy763kZk333zT3ffvv/9297cAY6MtP/zwgxo2bKhZs2YlnMegQYPcdRbwjL0Wyb1mAM4NwQWIIDaFMWrUKPfX/4EDB1SpUiX16dNHvXr1SriPjRQsW7bM3TZx4kQNGTJEM2fOTLjN/2E/depUVahQQZdddpl73Jo1a7rrbRTHP5LjH8lIHGSyZMniRncuuuiis56vjc4kHaWwwOF/PP+52GPa6FByxo4dq06dOiWEht27d7sAYlNedm527gULFnQjKqZv37667rrr3CiKfW/nef/99yf72Pbzpwsj/tfAQlTiIAXg/BBcgAhhH9g2hdGjRw+VK1fOjQxYCLDpDPt+zZo17n533HGH+7CuVauWqlSpoksvvdRdv3fvXjc6Y2HGLFiwwNWAWOixD3D7sPfr3r27u5ibbrrJjVr4Wcjws1EQm+ZJKleuXCeNpiRmYcV/nX8UxZ7HmSQODjY9NGzYMBdc7Dl17drV1Z9cddVVbtTIDB48+KSft6mvjz/+2I1EmZdfflnHjh3T9u3b3ddXX33VXe/z+TR+/HgX9G677bYznhOAc0NwASKEjSxYkahdbKrGwsb//vc/V29iNS02fWQjIa+88oobofCzAt59+/Zp06ZNLiCULl3aXd+mTRs3vWIhx8KPTesYmybp2LGjK3y1GpDEdTRJ2RTM008/fcr1Q4cOdVNV5kyjFf5RkjNNTSV17733uouFlLlz5yYU39r5X3jhhVq1atUpP3PllVeeFLjstbTf/fvvv7uA5f8ZCy6//fabe02bNWvmrktcAA3g/BFcgAhhwWTatGmu6PT99993haT+OpO77rrLff3ss8+0detWzZ8/39V9LFy40NVv2P0spNj0kT+I2IiMjUJY8LBi3RIlSrjrbTQkX758CcdnYvUwNlIzb968hOssCKU0iCQOLlaPYoW6Fq4ShyX/SFJiFtq++OILN3ozcOBANwplP2Ork6yGJikLKIkfc8KECe5ru3btVLlyZU2aNMkd2wjU888/78Kbf2WSFfICSDsEFyCCWFGrFdxaYauFEv8Hu9WB2PJn++C20QObDrKiXLvYyImNOLz00kuqWrXqSY9nH9r2ePfdd985nc/pRmPONEqT2MGDB92IjK1osqmwhx56yAWXxKMjdp+krD5n//79KlmypAsdNuVk02IWWk434pJ05OTXX391K5DstfPz1/QYe61WrlzpQpVdT50LkDYILkAEsRU2VsNiIwzly5d3x1akax/u99xzj1v6a7UrFmqs9sSmg6xPik0h2dSNjR5YgW7i0RFbVmzTI+vWrXOBw2o+/vrrLxeCLBDY8upSpUolez42tZKa6/23+W+3KZsyZcq4cFC2bFlXc5KUBYvOnTuf9PNWo3LzzTe7lT82XWXhrF+/fi7EFShQ4JTHsOeceOTE6mRsOs3Cjr1uxp534q8Wpiz4WTCyixUAAzh/NKADIoj1WLEVQzY9YrUZRYoUUcWKFV3TNav5sFBjU0QWZqxO5ZtvvnHHxkYjki6N9i8NtpEcK3C1i4UYq6Gx721a6t133z3t+VgYsGkp/8obu9jPJ126nJjd5g8HS5cuTfaczuS///2vC1v2Wpirr77avSYW0mxkxEZi7JwtENn3drFanVtuuSXhMWx0ykLa559/njA6ZKM8NlJl/WS2bdt20u+0+qC33347VecJIHmMuAAR5Mknn3SjDxdffLErRLWRlMSrdmxKxIKIfbUCU6tvsQByNlYX42dTJA8//LC6det21p/r0qVLQn1NYv7eMsmxkZLLL7/cjRJZcEhtILB6FRtxSrwSyWpyLBBZmLPwZKuNEo+82CiNjUD5p6Hs562uxwKePXf/smx77jZtZqMx/tfV6l2sz40t7QZw/gguQATxL9G1Rm1Wy2FLd+1D2b+yx8KKNaKz9v+2hNlCi92eXvUZ9rv8je9SM2Ji3njjDXde9pwsVNjFgkfS5dP+mhM/W/pt97VCZT+bHrNA5A8mFkjsudvjWaixx8ybN68r/rXeNcZGovzLoxPX1JgbbrjhlH2hrGFdSkIggDNjqgiIEBZK7C9/W+1jowlW12E1Hv5GcFawak3krGDVim7feecdV5BqK2hsWsU/PXO+LEjYCiD/NMyZLna/5PZEsnoaW71jzfMsWNi52iiNhQtbqZT4YqM6iWtmLIwkDUu2ssl+ly37tmXRNWrUcKNN9rxt2sv2XrIw5w8t/p+xVU0WTOwc7eLfo8mWnPuvs9fQ7le7du00ef2ASMeICxAhbFrIPmzvvPNO94FstS3GRh5sqbR1nrVmcla4aoW111xzjRo3buymQqx3i78hnD8E2Ff70LZGbhYQ/CMd9kFtIxoWPOx7CwS235A1lfMHF1v9Y5eUnndiNlJk9SYWLnr37u2us6kZK5K1EZOknWxtvyGbtrJzSbxayY79z8XO1+plxo0b50KHhTh7nDFjxrjiZFsmbq+NvSY2umJFvPZYSUda7DmbzZs3n/I8LPhZkPF3GAZwjnwAItrHH3/sq127tm/hwoUnXb9ixQpfpUqVfIULF/atWbMm4fqZM2fap70vJibGt3nzZvf92S7Tpk1L+Plq1ar5ZsyYkaJz+/TTT31Vq1ZNOD506JDvoosu8l122WW+v//+O0WPYb+7Vq1aviNHjpx0/ciRI33FihVz33fp0sVXokQJ3xtvvOE7fvz4SfeLjY31Pfnkk768efP6vv/+e3ed/f48efL48ufPn+JLrly5fKVLl07ROQM4vUz2P+caegCENxuV8O+a7Gdddm3Ew+pAbMmvjagk3rAw6c/byqHkak/OlY1m2JSQrYhKKzYaYm+FZ9o6IPEO2AACh+ACAABCBsW5AAAgZBBcAABAyCC4AACAkEFwAQAAISOs+rjYCgbbZM1WHLATKwAAocFW9dk2HrYh69l2hw+r4GKhxXaIBQAAoccaXtoGpxETXGykxf/ErQ04AAAIftYXygYe/J/jERNc/NNDFloILgAAhJaUlHlQnAsAAEIGwQUAAIQMggsAAAgZBBcAABAyCC4AACBkEFwAAEDIILgAAICQQXABAAAhg+ACAABCRlh1zgUAAOkjLt6npZv3atfBGBXLG6U65QspS+azd7pNawQXAABwRjPW7tAL09ZpR3RMwnUl80epb4sqalq1pDISU0UAAOCMoaX7hBUnhRazMzrGXW+3ZySCCwAAOO30kI20+JK5zX+d3W73yygEFwAAkCyraUk60pKYxRW73e6XUQguAAAgWVaIm5b3SwsEFwAAkCxbPZQt7riyxMed9X4ZheACAACSVUfRmvLh03r0+0nJ3p7pn9VFtjQ6oxBcAADAqf73P2WpVVNVtv2itiu/VP6YQyfd7O/gYkuiM7KfC8EFAAD8v5gY6eGHpTvvlKKjpauu0o9TZilX8SKJ7iSVyB+l4W1rZngfFxrQAQAAz4YN0t13S6tWecdPPSW9+KIaZsumBTfQORcAAASLiROlrl2lQ4ekIkWk8eOlpk0TbrbpoKsqFlagMVUEAEAkO3JE6txZatPGCy3XXSetXn1SaAkmBBcAACLVunVSnTrS6NFSpkzSc89Js2ZJpUopWFHjAgBApPH5pLFjpYceko4elUqUkD74QLr+egU7ggsAAJHk0CHpwQe9GhbTpIn3ffHiCgVMFQEAEClWr5Zq1fKCSubM0ssvSzNmhExoMYy4AAAQCVNDI0dKjz4qxcZKpUtLkyZJDRoo1BBcAAAIZ9HRUpcu0uTJ3nGzZl59iy15DkFMFQEAEK6WLZNq1vRCS9as0uuvS1OnhmxoMYy4AAAQjlNDQ4ZIPXtKx49LF1wgffSRVLeuQh3BBQCAcLJ3r9SxozRlind8221en5aCBRUOmCoCACBcLFok1ajhhZbs2b1Rl//9L2xCiyG4AAAQ6uLjpQEDvFVCf/whVazohRjb5dk64oYRpooAAAhlu3dL7dpJX33lHd97r/TOO1K+fApHBBcAAELVt99KrVtL27dLUVHSW295GyaG2ShLYkwVAQAQauLipJdekho18kLLJZdIS5dK//pXWIcWw4gLAAChZOdOqW1bafZs79imiYYOlXLnViQguAAAECpmzfJCy19/SblyScOGecElgjBVBABAsDtxQnr2WenGG73Qcvnl0vLlERdaDCMuAAAEs23bpPvuk777zjvu2lUaNEjKmVORiOACAECw+vJL6YEHpD17pLx5vR2ebblzBGOqCACAYGP7C/Xu7e3kbKHFNkpcsSLiQ4thxAUAgGCyZYvXm2XxYu/4kUek//5XypEj0GcWFAguAAAEi88/lzp0kPbvlwoUkN57z9skEQmYKgIAINBiY6VHH/VCioWWunWllSsJLckguAAAEEgbN0r163vt+k3Pnt4Kogsv5N8lGUwVAQAQKB995LXpP3hQKlxYev99ryD3DOLifVq6ea92HYxRsbxRqlO+kLJkDu82/0Ex4jJq1CiVLVtWuXLlUsOGDbVp0yZ3/dq1a1W7dm0VLFhQvXr1ks/nC9QpAgCQPo4e9fqx2NJmCy3XXCOtWnXW0DJj7Q5d89octX53sR79cJX7asd2faQISHD57bff1K9fP02ZMkXr169XxYoV1b59e8XGxqpFixaqVauWli1bpnXr1mns2LGBOEUAANLH+vVeDYv1ZLENEf/zH2nuXKlMmTP+mIWT7hNWaEd0zEnX74yOcddHSngJSHBZuXKl6tWrp5o1a6pcuXLq2LGjNm7cqK+++krR0dEaOHCgCzOvvPKKRo8eHYhTBAAg7Y0bJ9WqJa1ZIxUrJn39tbfLc9asZ50eemHaOiU3B+G/zm63+4W7gASXKlWqaM6cOVq1apULKsOGDVOTJk20evVqF2hs+shcccUVbtTldGyE5sCBAyddAAAIOocPe8ucbW+hI0ek66+XVq+WmjRJ0Y9bTUvSkZbELK7Y7Xa/cBew4HLnnXeqRo0aKlCggBYtWqTXX3/dBY/y5csn3C9TpkzKkiWL9u3bl+zj9O/fX/nz50+4WM0MAABBxUZXateWrPQhc2apXz/pm2+kEiVS/BBWiJuW9wtlAQkuS5cu1bRp07R48WLt379frVu31i233KKsWbMqR5LOgFFRUTpi6TQZffr0cSM2/svWrVsz6BkAAHAWtrhk1CipTh3p55+lUqWkOXO8XZ6zZEnVy2erh9LyfqEsIMFl0qRJuvfee1W3bl03UvLSSy+5gt1ChQpp9+7dJ9334MGDyp49e7KPYyEnX758J10AAAg4K11o08Zb6hwTIzVt6q0auu66c3o4W/JcMn+UTrfo2a632+1+4S4gwSU+Pl67du06KZzYqIqNuNi0kd/mzZtdHYsFGgAAQoJ1vLUC3EmTvJGV116Tpk+XihY954e0Pi19W1Rx3ycNL/5juz0S+rkEJLg0aNBAn376qQYNGqSJEyeqVatWKlGihHr06OHqXMaMGePuZ6uKGjdu7OpcAAAI+qmhoUOlevW8brjlyknffuvt8my1LeepadWSGt62pkrkP3k6yI7ters9EmTyBaDDm/1Kmx6yJnQ7duxQ1apV3bJnK9adOnWqq3nJmTOnMmfOrHnz5rli3pSw0GNTT1bvwrQRACDD2P5CnTpJn37qHbdsKdkf4ekwYxAXhp1zU/P5HZDgcjY7d+7U8uXL3dLowtYCOYUILgCADLdkidcBd8sWKVs26b//lXr08JrLIc0/v4NyryKbNmp2lrbHAAAElP3dP3Cg9PTT0okTUoUK3t5DV17JP0w6CsrgAgBAUNuzR2rfXvriC+/4rrukd9+V8ucP9JmFvYBtsggAQEhasECqXt0LLdZ7bPhwb6SF0JIhCC4AAKREfLy1bJcaNpS2bZMuvtirb+nWjXqWDMRUEQAAZ/PXX9L990szZ3rHbdt6Iy158vDaZTCCCwAAZ2Jt+q0L7s6dUs6cXq8Wq29h1VBAMFUEAEBy4uKk55+XGjf2Qstll0nLlnm7PBNaAoYRFwAAktq+3RtlmTfPO7bmcm+9JeXKxWsVYAQXAAAS+/prr57FNv21GpYRI7wQg6DAVBEAAOb4calPH28nZwst1apJy5cTWoIMIy4AAPzxh9S6tbRwofdaPPig9MYbUtTJGxoi8AguAIDINnWqt0po3z7J9skZPVq6885AnxVOg6kiAEBkOnZMeuIJ6dZbvdBSu7a0ciWhJcgx4gIAiDybNkn33OMtbzaPPy69+qqUPXugzwxnQXABAESWTz7xljcfOCAVLCiNHSu1bBnos0IKMVUEAIgMMTFe0a3t5GyhpX59adUqQkuIIbgAAMLfr79K9ep5+wuZp5/2msuVKxfoM0MqMVUEAAhvEydKXbtKhw5JRYtK48dLN90U6LPCOWLEBQAQno4ckTp39hrIWWhp2NCbGiK0hDSCCwAg/Pz0k1SnjteTxTZE7NtXmjVLKlUq0GeG88RUEQAgfPh83iqhhx6Sjh6VSpSQPvhAuv76QJ8Z0gjBBQAQHg4e9FYNTZjgHTdp4tWzFC8e6DNDGmKqCAAQ+lavlq680gstWbJIr7wizZhBaAlDjLgAAEJ7auidd6THHpNiY6UyZaRJk6Rrrgn0mSGdEFwAAKEpOlr617+kjz/2jps39+pbChcO9JkhHRFcAACh54cfpHvvdXsO+bJm1e+9ntPquzqo2H6pTkGfsmTOFOgzRDohuAAAQmtqaPBgqXdv6fhxHSldVo+0fEqz4y+UPlrt7lIyf5T6tqiiplVLBvpskQ4ozgUAhIa9e6VWrbydnI8f187Gt6jenf/V7HwXnnS3ndEx6j5hhWas3RGwU0X6IbgAAILfwoVS9erS1KlS9uyKHzJEtzV6XAei8pxyV98/X1+Ytk5x8f4jhAuCCwAgeMXHSwMGSNdeK23dKl10kbR4sZbc3Fo7DsSe9scsruyIjtHSzXsz9HSR/gguAIDgtHu31KyZ9NRTUlyc1Lq1tGKFVKOGdh2MSdFDpPR+CB0EFwBA8Jk/35sasiZyUVHSu+96rfvz5nU3F8sblaKHSen9EDoILgCA4GEjKy++6O0ttH27dOml0tKl3i7PtlniP+qUL+RWD51u0bNdb7fb/RBeCC4AgOCwc6d0443Sc895tS3t23v9Wi6//JS7Wp8WW/JskoYX/7HdTj+X8ENwAQAE3syZUrVq0pw5Uu7c0vvvS2PGeN+fhvVpGd62pkrkP3k6yI7tevq4hCca0AEAAufECen5571NEa25nI2uTJ4sXXJJin7cwkmTKiXc6iErxLWaFpseYqQlfBFcAACBsW2bt1JowQLvuGtXadAgKWfOVD2MhZSrKrI/UaQguAAAMt706VK7dtKePd5KIVs1dM89/EvgrKhxAQBknGPHpF69vJ2cLbTUquX1ZiG0IIUYcQEAZIwtW7wdnZcs8Y579PC64ubIwb8AUozgAgBIf599JnXsKO3fLxUo4K0Ysg0TgVRiqggAkH5iY72Rldtv90JLvXrSqlWEFpwzggsAIH1s3CjVry8NGeIdW23Lt99KF1zAK45zxlQRACDtffih1KWLdPCgVLiwNG6cdMstvNI4b4y4AADSztGjXj8W689ioaVBA29qiNCCNEJwAQCkjZ9/lurWlUaO9DZEfOYZr4V/mTK8wkgzTBUBAM6f7S304IPSkSNS8eLShAlS48a8skhzjLgAAM7doUPeLs52sdByww3e1BChBemEERcASAdx8b7w3/hvzRrp7rul9eulzJmlF16Q+vSRsmQJ9JkhjBFcACCNzVi7Qy9MW6cd0TEJ15XMH6W+Laq43YxDnu3iPGqU158lJkYqVUqaNEm69tpAnxkiAFNFAJDGoaX7hBUnhRazMzrGXW+3h7QDB6T77vOWOltouflmb2qI0IIMQnABgDScHrKRFl8yt/mvs9vtfiHJNkOsWdPr0ZI1q7fP0BdfSEWLBvrMEEEILgCQRqymJelIS2IWV+x2u1/ITQ1Z99urrpJ++00qV87rgGudcK22BchA1LgAQBqxQty0vF9Q2LdP6tTJ2yTR2MaIo0dLhQoF+swQoYjKAJBGbPVQWt4v4JYs8aaGLLRkyyYNHix9+imhBQFFcAGANGJLnm310OkWPdv1drvdL6jFx0tvvCFdc420ZYtUoYK0cKG3isg64gIBRHABgDRifVpsybNJ+vHuP7bbg7qfy99/Sy1bSj17SidOeH1arCj3yisDfWaAQ3ABgDRkfVqGt62pEvlPng6yY7s+qPu4fPedVL26NH26lCOHNGKEt4Iof/5AnxmQgOJcAEhjFk6aVCkROp1zbWro1Vel556T4uKkypWljz6SqlUL9JkBpyC4AEA6sJByVcXCwf/a/vWXdP/90syZ3rF9P2yYlCdPoM8MSBbBBQAi1ezZUtu20s6dUq5c0tChUrt2FOAiqFHjAgCRxqaD+vaVmjTxQstll0k//ODt8MyqIQQ5RlwAIJJ2pf7zT6lNG2n+fO+4c2evP4uNuAAhICAjLmPHjlWmTJlOudj18+fP16WXXqoiRYpo4MCBgTg9AAhJtoHjNa/NUet3F+vRD1e5r3acsLHjjBneqiELLVbD8sEH0rvvEloQUgISXO677z7t27cv4bJ161YXVCywtGzZUq1bt9aiRYv0wQcfaO7cuYE4RQAIyV2pd0Yf1iWFflTdkvPd17+iD+uR95dqU6eHvZ2crU+LhRfrzWK7PAMhJiBTRdmzZ3cXv2HDhum2225zYaVUqVJ69tln3QjMc889p9GjR6tRo0aBOE0ACKldqWsWX6g2l4xUoZx/J9x29PeCqvB8LlXY8qd3xUMPSa+/LkWFyLYDQLAV58bExGjw4MH697//rdWrV7uQYqHF1KlTR8uXLz/tz8bGxurAgQMnXQAg0lhNS6moOXq4+isqGPX/oaXw91LjR/ap8pY/dTgqh355e4z09tuEFoS0gAeXiRMnqm7durrwwgtd8ChfvnzCbfny5dP27dtP+7P9+/dX/vz5Ey5ly5bNoLMGgOCx68BhN9Ji7O++TMelikOly5+Rsh2UDlSWvh2WS+vrXx/oUwVCP7iMGDFC3bp1c99nzZpVOazN9D+ioqJ05MiR0/5snz59FB0dnXCxWhkAiDRFsq9000MWWqK2SzUekcp+4t229S5p5RApZ/l97n5AqAvocuiNGze6SxPrJSDbKb2Qdu/enXD7wYMHT6qFScpCTuKgAwCRqELhw/plt1R0nlT5dSnrYel4Pmn9U9Ke+iffDwh1AQ0ukydPVvPmzZUtWzZ3XLt2bTd15Ldy5UqVLl06gGcIAMEvyldElQZJpad6x9FVpXXPSrHFktwvR6mAnB8QNlNFM2bMUMOGDROObSn0999/r1mzZun48eMaMGCAbrrppkCeIgAEt19+UYGbeyeElt/vk1YNOjm0+JRJOXKUVYECDQJ2mkDIj7gcPXpUS5Ys0ciRXkGZsV4ugwYN0i233KI8efKoQIECrikdACAZEyZI3bop0+HDii+ST2t6HdC+OrYq05foTplk11x00ZvKlCkLLyNCXiafz5f4v/CgsHnzZq1fv14NGjRwASalbFWSrS6yQl1bkQQAYenwYalHD+m997xj63U1YYJ2Z1usjRsfVWzstoS72kiLhZaiRW8P3PkCafj5HZTB5VwRXACEvZ9+ku6+W1q3zlv7bJslPvOMlMUbTfH54rR//3c6dmyHsmcv6aaHGGlBOH1+s8kiAIQC+xtzzBjp4Ydtrl0qWdLbayhJZ3ELKQUL/n/tIBBuCC4AEOwOHpS6d/eCirnxRmn8eKlYkmVDQAQIeAM6AMAZrFolXXmlF1psOqh/f+mrrwgtiFiMuABAsE4NjRghPf64bcwmlSkjffihdPXVgT4zIKAILgAQbKKjpc6dpU/+6dvfvLlkrSEKFw70mQEBx1QRAASTH36QatTwQot1FR84UJo6ldAC/IMRFwAIlqmhwYOl3r2l48elCy+UPvpIqlMn0GcGBBWCCwAE2t69UocO3siKueMOadQoqUCBQJ8ZEHSYKgKAQFq4UKpe3Qst2bNLQ4dKH39MaAFOg+ACAIEQHy+99pp07bXS1q1SpUrS4sXSgw96HXEBJIupIgDIaLt2SQ88IH39tXd8333e0ue8efm3AM6C4AIAGWnePC+o7Ngh5cwpDRkidezIKAuQQkwVAUBGiIuTXnhBuuEGL7Rceqm0dKnUqROhBUgFRlwAIL1ZUGnTRpo71zu2FUQ20pI7N689kEoEFwBIT998I7VtK+3e7QWV4cOl++/nNQfOEVNFAJAeTpyQ/vMfqWlTL7RccYW0fDmhBThPjLgAQFqz5c1WgLtggXfcrZvXut+KcQGcF4ILAKSl6dO9pc7WDdeWN1sH3Lvv5jUG0ghTRQCQFo4dk3r29HZyttBSq5a0ciWhBUhjjLgAwPnavFm6915vebN59FGvK26OHLy2QBojuADA+fj0U6+BXHS0t7/QmDFSq1a8pkA6YaoIAM5FTIz0yCPeTs4WWurVk1atIrQA6YzgAgCptWGDVL++9Pbb3nHv3tK330oXXMBrCaQzpooAIDUmTZK6dJEOHZKKFJHGjZNuvpnXEAimEZcTJ05ouHV7/Md7772nr776Ktn7vvjii/rzzz/T7gwB4DzExfu06Lc9mrLqT/fVjs/JkSNeYLH+LBZarr3WmxoitADBN+KSOXNmDR06VA0aNNBnn32m0qVLK1OmTGrVqpVy5sypuLg4NW3aVCVLltSbb76pttbeGgACbMbaHXph2jrtiI5JuK5k/ij1bVFFTauWTPkD/fyzt6x57VpvQ8RnnpGee07KyqA1EJQjLhZcsmXLpiNHjuiXX35x11lwWb58uQsszZo1U+XKldWjRw+NHTtW5cuXT+/zBoCzhpbuE1acFFrMzugYd73dniLvvy9deaUXWooXl2bOlPr1I7QAAZKiPxc2btyo48ePa8eOHTp69Kj27NnjRl0KFiyoG2+8UXny5FF0dLQbgWnRokX6nzUAnIFNB9lIS3KTQnZdJsnd3qRKCWXJbEfJsOmghx7yalhM48bShAleeAEQ3CMudevW1YYNG9SpUydX2/LKK6+4630+nz7//HMVLlxYbdq0UZ06ddL7fAHgrJZu3nvKSEvS8GK32/2S9eOPUu3aXmjJnFl66SVpxgxCCxAqwcVGWKpUqaLp06frjjvu0Ouvv54wXdS9e3cdOnRIjz32mHr16qVPrRkTAATQroMx53Y/n08aOdL+WpPWr5dKl5bmzfN2ec6SJX1OFkD69HGxkGIjLFaIa9+bbdu2qWPHjurWrZsOHDigMWPGqHfv3u5+ABAoxfJGpf5+Bw5IrVtLXbt6zeVstZCtGmrQIP1OFED61LhYfUtsbKxKlSqlW2+9Vfv27dOxY8fUt29f5ciRQ/Hx8SpTpowaNWrkCnm//fZbXXfddak/GwBIA3XKF3Krh6wQN7k/o+xPrxL5o9z9nOXLpXvukX77zSu67d9feuIJb5oIQFBJ0f8rs2bNqi+++MIV4y5btkzVqlVzU0c33HCDLrjgAj344IOaMWOGK9y1Al0LLwAQKFZwa0ueTdLSW/+x3Z7FDoYM8brgWmixzrfffeft8sz7GBCUUpQwbITFljhbYzm7tGvXTrt27XLXjxo1yt1n4cKFbqn0gAEDXL8XAAgk69MyvG1NN7KSmB3b9U1LR0m33y716CEdO+btMbRypbfnEIDQnipq2bKlsmfPrueff17vv/++ypUrp//85z+ud8umTZvcfS699FKtXLlS1atXT+9zBoAUhxdb8myrh6wQ12pabHooy9IlUo17pd9/l7Jnl2zBwcMPe83lAIR+cJk2bZq++eYbvfzyy66e5fDhw/r6669dYe66detcDYyFmblz56pDhw7pf9YAkIppo6sqFvYO4uOlgW9IffrYXiZSxYrSRx9JtWrxegLhFFystuWee+5xl1mzZmny5MkuwIwcOVK33HKLW2VUs2ZN5cqVK/3PGADOxd9/S+3aSV9+6R1bMa4tfc6Xj9cTCCGZfGG0dtmWZOfPn9918c3HmxEAv2+/9TZHtA1go6KkwYOlf/2LqSEgBD+/U7z8x/q3DBo06LS32zLpSpUq6fHHH3dLpQEg4OLivK63jRp5oaVyZWnJEm+XZ+pZgJCUouDyySefaPDgwXrGdkSVXMM5K9S1jrl+/fv3V/v27fXWW28lFOwCQMD89ZfUtKn07LNebcsDD0jLlklXXME/ChDOwcVqWiyoXHHFFW5lkX8Fke1ZVKFCBQ0ZMsR1yi1QoIA+++wzt+niJZdckhHnDgDJmz1bqlbN3sAkq70bO9bb5TlPHl4xINxrXKzhnK0isk64xYoVc/1b/ObPn+9CjTWos52jbRPGF154QVE2hxwA1LgAEc5WCvXr500P2Vtb1areqqEqXjM6AMEpNZ/fZ11VZPUqf/zxh8aNG+c649qS6J07d2rz5s364YcfXO1LrVq1XKDp3LlzwEILgAhnNSxWgGuFuMaKb9980xtxARA2sqZkqmjevHnKmTOnCykHDx7UxRdfrOuvv97tEu2fFnr33XfVpEkTLV261I3MAECG+eorr4bFljzbdJAtc7YNEwFE9nLookWLavfu3e7777//XoULF3aXQoUKKUuWLOrZs6fWrl3r9i0KBKaKgAhz/LhkiwYGDPCOa9TwpoYqVQr0mQEI9HJoY43m/Bo2bKjmzZvrsssuc43nbOfoOnXquP2Ltm7dmpqHBYDUs3b91177/6HFWvYvXEhoAcJcijrn+iUdnNm4caP7alNItnfRpEmT3EiMFesCQLqZMkWy7UX27ZPy55fee8/bMBFA2Mt6riMuib+3aSKrebHaF0ILgHQTGys99ZTX+dbUqSN9+KFUvjwvOhAhUhVcrDDXAoo5ceKEmjZtqty5c7tpoqpVq6pFixbpdZ4AIt1vv3n7Cy1f7h0/+aT0yive7s4AIkaqinOtwVzi0ZbY2FhX07JhwwYtWLBAK1as0P3336/hw4crR44cymgU5wJhavJkqXNn++tJKlTIaybXvHmgzwpAMPZxSey222474+22ouj9998PSGgBEIaOHpWeeEIaMcI7vuYaaeJEqWzZQJ8ZgFDfHdpGXwIdWBhxAcLIL79Id98t/fijtyFinz7SCy9IFP8DYSddlkN/+eWXrsbl0UcfPeW2+Ph4tWrVyu1X9OCDD57bWQOA34QJUq1aXmixhpbWG+rllwktAFIWXAYOHOh2frapoCm2DDGJzJkz6+OPP9Zdd93lpooS7xoNACl2+LDUsaN0//3e940aSatWSTfeyIsIIOU1LtYd1/YluuCCC1xISdrLxbYFGDt2rNuvaNq0acrDDqwAUuunn7ypoXXr7K8hqW9f6T//sX4LvJYAUhdc/vzzTzeSYvbu3es2U7SNF3/66Se3LPrqq69Wnz593HLopMEGAM7Iyuysgdwjj3jFuCVLegW4DRvywgFIfXCx2t3ff/9d2bNndzs/W4O5unXrqn79+rruuutUsWJFd7/x48e74hqrcwGAFLHlzd26eUHF3HSTNG6cV9cCAGmxqqhChQratGmTazxnQcW65poOHTq4hnT3WIOoAGFVERBCVq70Gspt2OBNB1nxba9e3jQRgIhyIL36uCSWLVs25cyZ031v2ccu1pgukMEFQAiwv5WGD5cef1w6dszryWJt++vXD/SZAQgBqfrTxsKJbahojh8/riNHjujYsWPu+99++02ffvqpOwaAZO3fL911l/TQQ15osW1CbOSF0AIghVI14mKhxMKKmTFjRsKGik8++aQLNc8999wpO0gDgLN0qTc1tGWLDdlKAwZI1hcq0YatAJBmIy4xMTGuCd1ff/2lHTt2qHz58m75s12svmXy5MkutAS6ey6AIGN/zAwa5LXrt9BiOzl//7302GOEFgDpE1z+/vtvXXPNNfrwww/dcmfbSLFBgwZudZFdWrZs6Yp0bUm0jcSkxlNPPXXSrtLW5K527doqWLCgevXqxQgOEMr27JFatvT2Gzp+XHuattT096drUaEKiotndBZAOk0V2QjLjTfeqFdsC3nJhYrNmzefcr+tW7eqbCo2P/vxxx81bNgwrV69OmG/IwsxN910kwtJPXr0cI3tbEQHQIixUZXWre2NQXHZc+iNpl017JIm0vRNkjapZP4o9W1RRU2rlgz0mQII900W/e39z4ftb2S9YCwQ9evXz133+eefq2PHjtq2bZty5crlAs1DDz2kBQsWpOgxWQ4NBIH4eK9+5ZlnpLg4Hb6ggu5q9JjWFa9w0t38lS3D29YkvAAR7kB6bLLod/To0WQ3WkytESNGaM2aNbrwwgs1depUV/hrQaVevXoutJgrrrhC66z9N4DQsGuXdPPN3k7OcXGKb32fWrZ/85TQYvx/Mb0wbR3TRgBSLEXBZcOGDXrcei5IrneLddG1gZp33nnHXWcFuqlhmzD27dvXNbOzrryDBg1yNTSWuKzo18/6wljtzL59+5J9HJtasp9JfAEQIPPmSdWrS998Y28U0ujRWtJvsH6LOf3bjIWXHdEx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TJkyxZcrVy5f4cKFfUWLFvX99NNPvnD1+eefuyV3SS9Jl+CFq3bt2oX9kkJbElyvXj23VLRChQq+qVOn+sJVfHy8r1+/fr5y5cr5smXL5qtRo4ZvxYoVvnCV9P+r4f7elfj5RsJ715meT7sIeO/yY3foFNq5c6eWL1/u/hovXLhw+qZJAEgjvHch3BBcAABAyGBVEQAACBkEFwAAEDIILgAAIGQQXAAAQMgguAAAgJBBcAGQbhI39/MvzQWA80FwAZBmIcX2AtqxY4c7njBhgq677rqE8LJ27VqVK1dOU6ZMOennoqOj3QaI1o7fOjUndzmX3avtd7/99tvJ3mYbhz799NOndFG2zsL+btEAghPBBUDavJlkzqxff/1VjRo10p49e9yWAn/88YfefPNNd/uAAQPUsGFDd31iti9WsWLFVLJkSbeXUtJL0aJFdccdd5wUMOx32f5SdrGtKNasWXPK+dhGqKfbDNV2eLeL3/r1690WF1WrVlWePHn4LwIIYuxVBCBNWJiwvYD69+/vPvxz5Mihzz77TJUrV3b7IX311Vf68ccfT9nn68svvzzj49oozs8//5xwbLuVlypVyu10bex32fe275Ltdu1//K1bt+rrr792I0CPP/648uXLl+zjW9iy/ccefvhhPf/882nwSgBITwQXAGnCRkxsSsfCw5AhQ5K9z+WXX+52V69bt65mzZqVcP2//vUv9/Xll192oy+J2f0Tj4LY4yeVP39+t5O5hRoLUDYKY0HFRmwuu+wyd31yFi9erFatWunRRx9Vnz59zvm5A8g4TBUBSBMWKCyMWAHu33//fdqLhZqk4eO5555ztS4XX3yxhg8fbpu/nhRcEk/rWDDZvn17wlTR4cOHXWhq0aKFLrnkErVs2dJ9bwGoRo0auvPOO5UzZ053P7vExMQoLi7O1d4ULFjQ1brYiIxd779YnYvdF0DwIbgASBM2YlG2bFk3NZQrV66EYGEXCw4WVvr166errrpKDz744Ek/az83efJkvf/++/rggw905MiRk4KL/XzCm1bmzG6qyAp67ZI7d243wmI/Z6HFQklynnnmGRUqVEhFihTR6NGjXc1NrVq11Lt3bzc6Y9f7L7aRatLiXQDBgeACIE1YGClevLh+++03FzwsVGzYsEEdOnRw4cJub9u2rQs2FjCSc+utt2rBggXu/vPnz092xCU+Pj7Zn23Xrp2OHTvmVjMlZ9CgQe6xbDSlS5cu+ve//+2+HzdunBuZSbyKye53uukuAIFFcAGQJqy+JfEUjxkzZozmzp3rlkK/9dZbqlChgruPTcckZ/fu3Ro8eLAuvfRSde/e3U3n2H0TB5fkRlTsMW1E57HHHnPhJTWsxsWmnqy4F0DwozgXwHmzcGHTQzZlY1M5iQOFXaxINvF1NjW0ZcsWd7xv3z598cUX+uijj1yxrNWkjB071hXwJjfiYsHFVgrZlI6xWhR/rxgLLqllIzivv/66unbt6pZDW50NgODFiAuA82bBwkY6LARYiPBfhg4d6qaFEl9nwcOmk4wdW82LFefecMMN2rRpk0aMGJEQWkzSERf7GSvG9Rf72rTS8ePHz+m8bUSoYsWKqlOnju655x7XtG7OnDn8FwEEMUZcAKSJ5JYcJ2357+fvtWLTOxYUrDYmcX8Xm7qxULJr1y7XcM7qZBL/bOIl09YbJvGIjt+BAwfcCFBybJRn/PjxrkHdwIEDdcEFF7iaFgtBTZo0cdNHr776qipVqpTKVwFAesvkSzopDQDnyWpaevbs6UKFdcodOXJkqn7eGtbVrFnTjaxYJ15rbGcN7VJi1apVrqGcjdTY1JNN/yRlq4lsKfTEiRNP6RtjxcG2Qslqck7X/wVA4BBcAKQ5+3vIpolsbyILEVb/klo2pZS0y25KLVu2zDWkO93vtREdCyzJNbMDENwILgAAIGRQnAsAAEIGwQUAAIQMggsAAAgZBBcAABAyCC4AACBkEFwAAEDIILgAAICQQXABAAAKFf8HR2Hb0n0ErVIAAAAASUVORK5CYII="
     },
     "metadata": {},
     "output_type": "display_data",
     "jetTransient": {
      "display_id": null
     }
    }
   ],
   "execution_count": 48
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-11-07T02:04:57.828980Z",
     "start_time": "2025-11-07T02:04:57.819342Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 用方差和斜方差验证求解方式\n",
    "x = np.array(X).reshape(-1)\n",
    "cov = np.cov(x, y)\n",
    "print(cov)"
   ],
   "id": "c791d06b80216f42",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 15.21111111  45.83333333]\n",
      " [ 45.83333333 144.5       ]]\n"
     ]
    }
   ],
   "execution_count": 49
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-11-07T02:04:57.864016Z",
     "start_time": "2025-11-07T02:04:57.856749Z"
    }
   },
   "cell_type": "code",
   "source": [
    "beta1 = cov[0, 1] / cov[0, 0]\n",
    "print(beta1)"
   ],
   "id": "90ce620ebeecb454",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.0131482834185537\n"
     ]
    }
   ],
   "execution_count": 50
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-11-07T02:04:57.890926Z",
     "start_time": "2025-11-07T02:04:57.883331Z"
    }
   },
   "cell_type": "code",
   "source": [
    "model = LinearRegression(fit_intercept=False)\n",
    "model.fit(X, y)\n",
    "print(model.coef_)\n",
    "print(model.intercept_)"
   ],
   "id": "9d5b86c72d6d3bc1",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[6.81485468]\n",
      "0.0\n"
     ]
    }
   ],
   "execution_count": 51
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-11-07T02:04:58.069238Z",
     "start_time": "2025-11-07T02:04:57.908545Z"
    }
   },
   "cell_type": "code",
   "source": [
    "#  模型预测\n",
    "X_new = [[10]]\n",
    "y_pred = model.predict(X_new)\n",
    "print(y_pred)\n",
    "# 5.画图\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import matplotlib\n",
    "\n",
    "# 设置中文字体和解决负号显示问题\n",
    "matplotlib.rcParams['font.sans-serif'] = ['SimHei']\n",
    "matplotlib.rcParams['axes.unicode_minus'] = False\n",
    "x_line = np.arange(0, 15, 0.1).reshape(-1, 1)\n",
    "y_line = model.predict(x_line)\n",
    "plt.scatter(X, y)\n",
    "plt.scatter(X_new, y_pred, c='y')\n",
    "plt.plot(x_line, y_line, c='r')\n",
    "plt.xlabel('学习时长')\n",
    "plt.ylabel('考试成绩')\n",
    "plt.title('线性回归模型')\n",
    "plt.show()"
   ],
   "id": "5b65f8c14d339827",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[68.14854682]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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AABRZ7tMTVpamjRp0kSSk5Olf//+4vF4xHLlpoYNRf71L2+56ZVXRN56S6REiVhfGQAAjmaroObEiRPSsWNHady4saxbt042b94ss2bNEsuUm8aMOVtuqlmTchMAAFFkq6Bm8eLFcvDgQRk7dqxUr15dRowYITNmzLBGualzZ5H+/UVOnxZJTRVZv17k8stjfWUAALiGrXpqNm3aJM2bN5fExERzv379+iZbk11WR28+hw4disxFMd0EAIAl2CpTo4FJ1apV/ffj4uKkYMGCcuDAgSznjhw5UpKSkvy3ypUrR+aifv+dchMAABZgq6CmUKFCEq/NtwESEhLk2LFjWc4dMGCAKVX5btu1zyUSOnQQmTOHchMAADFmq/JT6dKlzfRToMOHD0uRIkWynKvBT3AAFDHdukXnzwEAAM7I1Ogo92rtYfmv9PR00zejwQ4AAHA3WwU111xzjemrmTlzprmv009t2rQxfTUAAMDdCtmtp2b69OmSmppqFt4rUKCArFy5MtaXBQAALMBWQY3q1KmTbN26VdavX2/Gu8uUKRPrSwIAABZgu6BGpaSkSAedOgIAALBjTw0AAEB2CGoAAIAjENQAAABHIKgBAACOQFADAAAcgaAGAAA4AkENAABwBIIaAADgCLZcfC8vPB6P+ap7RwEAAHvwfW77PsfPxTVBzeHDh83XypUrx/pSAABAHj7Hk5KSznlOnCcnoY8DZGRkyK5du6REiRISFxcX9ihSg6Xt27dLyZIlxel4vs7G36+z8ffrfIcc9pmkYYoGNBUrVjQbWZ+LazI1+kJUqlQpon+G/sfjhP+Acorn62z8/Tobf7/OV9JBn0nny9D40CgMAAAcgaAGAAA4AkFNGMTHx8ugQYPMVzfg+Tobf7/Oxt+v88W77DPJlY3CAADA2cjUAAAARyCoAQAAjkBQAwAAHIGgJp/S0tKkSZMmkpycLP3798/RMs52tmDBAqlWrZoUKlRIGjRoIN9++624Rbt27WTWrFniBk8//bR07NhRnG769OlmkbLExERp2bKlbNu2TZxo3759UrVqVfnpp59c8d4V6vk6+b0r1PN163sXQU0+nDhxwrzxN27cWNatWyebN2929H84W7duld69e8uoUaNk586dUqtWLbnvvvvEDd566y1ZunSpuMFXX30lkydPlvHjx4uT6X/PQ4cONR92W7Zs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"
     },
     "metadata": {},
     "output_type": "display_data",
     "jetTransient": {
      "display_id": null
     }
    }
   ],
   "execution_count": 52
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
